package demo

import com.fasterxml.jackson.annotation.{JsonIgnoreProperties, JsonProperty}

/**
 * 1、case class字段名跟json中的字段名相同，直接映射
 * 2、json字段中有"class",为关键字，所以需要转换，@JsonProperty("class")作为标记，将class映射成class_name
 * 3、case class的字段是有默认值的，特别注意基本类型，比如Int默认值为0，如果json中没有该字段，则默认为0。
 *   如果需要基本类型也需要为null，则将类型修改为Option[Int]
 */

@JsonIgnoreProperties(ignoreUnknown = true)
case class MiddleSchoolClass(@JsonProperty("class") class_name: String, head_teacher: Teacher, score: Int, students: Array[Student])

@JsonIgnoreProperties(ignoreUnknown = true)
case class Teacher(name: String, education: String)

@JsonIgnoreProperties(ignoreUnknown = true)
case class Student(name: String, age: Option[Int], phone_num: String)
